<?php

namespace App\Http\Controllers\Home;

use App\Http\Controllers\Controller;
use App\Http\Controllers\PublicController;
use App\Library\Tools\Upload;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cookie;

class UserController extends PublicController
{



    /**
     * 实例化一个新的控制器实例
     *
     * @return void
     */
    public function __construct()
    {
        // 控制器中件间
        // [控制器所有方法要走auth中间件]
//        $this->middleware('auth');
//        //[控制器index方法要不走log中间件]
//        $this->middleware('log')->only('index');
//        //[控制器除了store方法要不走subscribed中间件]
//        $this->middleware('subscribed')->except('store');
    }




    public function index(Request $request){

//        echo "this home user index";

        // 检查是不是走到userURI
//        if ($request->is('user/*')) {
//            //
//            echo 3333;
//        }


        // 没有包含查询条件字符串
//        $url = $request->url();
//        var_dump($url);

        // 包含查询条件字符串
//        $url = $request->fullUrl();
//        var_dump($url);


        // 获取全部数据
//        $input = $request->all();
//        var_dump($input);

        // 获取谋一个字段的值 ，第二个参数是默认值
//        $name = $request->input('name', 'Sally');

        //当处理包含数组的表单时，可以使用 「.」 运算符来访问数组的数据：
//        $name = $request->input('products.0.name');
//        $names = $request->input('products.*.name');
//        var_dump($name);


        //你可以在 input 方法第二个参数传入一个默认值。这个值将会在当前请求不包含所需要的字段时返回：
//        $input = $request->input();
//        var_dump($input);

        // input 方法可以从整个请求体中获取数据（包括查询字符串）, 而 query 方法仅仅从查询字符串中获取输入值：
//        $name = $request->query('name');
//        var_dump($name);

//        $name = $request->query('name', 'Helen');
//        dd($name);

        // 获取json数据
//        $name = $request->input();
//        dd($name);

        //获取部分输入数据#
//        $input = $request->only(['username', 'password']);
//        $input = $request->only('username', 'password');
//        $input = $request->except(['credit_card']);
//        $input = $request->except('credit_card');


        // 判断值存不存在
//        if ($request->has('name')) {
//            //
//        }

//        if ($request->has(['name', 'email'])) {
//            //
//        }

//        hasAny 方法将会在指定的值有一个存在的情况下返回 true：
//        if ($request->hasAny(['name', 'email'])) {
//            //
//        }


//        如果你想要判断一个值在请求中是否存在，并且不为空，可以使用 filled 方法：

//        if ($request->filled('name')) {
//            //
//        }

//        如果你想要判断一个值在请求中是否缺失，可以使用 missing 方法：
//        if ($request->missing('name')) {
//            //
//        }


        //从请求中获取 Requests
//        $value = $request->cookie('name');
//        var_dump($value);

//        $name = Cookie::get('name');
//        dd($name);


//当然你也可以使用 hasFile 方法判断请求中是否存在指定文件：
//        if ($request->hasFile('photo')) {
//            //
//        }


//        获取上传的文件#
//        $file = $request->file('photo');
//        //$file = $request->photo;
//        dd($file);


        if ($request->hasFile('file')) {
           $res = $this->uploadImg($request);
           return response()->json($res,200);
        }



    }



    /**
     * 存储一个新用户
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        // 获取所有post数据
        $name = $request->post();
        dump($name);die;
        //
    }


    /**
     * 显示指定用户的简介
     *
     * @param  int  $id
     * @return \Illuminate\View\View
     */
    public function show($id)
    {
        //return view('home.user.show', ['user' => User::findOrFail($id)]);
    }


    public function update(Request $request,$id){
        var_dump($id);
    }



}
